package com.sg.dto.biz.app.common;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Objects;

/**
 * @desc KeyFocusDto
 * @使用场景
 */
@Data
public class KeyFocusDto extends BaseDto implements Serializable {

    /**
     * 重点关注ID
     */
    @ApiModelProperty("重点关注ID")
    private String keyFocusId;

    /**
     * 重点关注内容ID
     */
    @ApiModelProperty("重点关注内容ID")
    private String keyFocusContentId;

    /**
     * 重点关注内容表类型编码 OMS_TARGET_OBJECTIVE:指标 OMS_TASK:工作任务 OMS_QUESTION:问题
     */
    @ApiModelProperty("重点关注内容表类型编码")
    private String keyFocusContentTypeCode;
    /**
     * 重点关注内容名称
     */
    @ApiModelProperty("重点关注内容名称")
    private String keyFocusContentName;

    /**
     * 关注主体ID
     */
    @ApiModelProperty("关注主体ID")
    private String focusObjectId;

    /**
     * 关注主体表类型编码 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员 OMS_ORG_DEPT:部门 OMS_ORG_ORGANIZATION:组织
     */
    @ApiModelProperty("关注主体表类型编码")
    private String focusObjectTypeCode;

    /**
     * 主题内容ID
     */
    @ApiModelProperty("主题内容ID")
    private String themeContentId;

    /**
     * 主题内容表类型编码
     */
    @ApiModelProperty("主题内容表类型编码")
    private String themeContentTypeCode;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Long orderNumber;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        KeyFocusDto that = (KeyFocusDto) o;
        return keyFocusId == that.keyFocusId && keyFocusContentId == that.keyFocusContentId && keyFocusContentTypeCode == that.keyFocusContentTypeCode && keyFocusContentName == that.keyFocusContentName && focusObjectId == that.focusObjectId && focusObjectTypeCode == that.focusObjectTypeCode && themeContentId == that.themeContentId && themeContentTypeCode == that.themeContentTypeCode && orderNumber == that.orderNumber;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), keyFocusId, keyFocusContentId, keyFocusContentTypeCode, keyFocusContentName, focusObjectId, focusObjectTypeCode, themeContentId, themeContentTypeCode, orderNumber);
    }

}
